// pages/profile/index.ts
const pageStack = getCurrentPages()
Page({
  data: {
    avatar: ''
  },
  onLoad() {
    // 获取实例
    const app = getApp()
    this.setData({ ...app.userProfile })
  },
  getUserNickname(ev) {
    console.log(ev.detail.value);
    this.updateNickname(ev.detail.value)
  },
  async updateNickname(nickName) {
    if (!nickName) return
    const { code } = await wx.http.put('/userInfo', { nickName })
    if (code !== 10000) return wx.utils.tosat('昵称上传失败')
    pageStack[0].setData({ nickName })
    const app = getApp()
    app.userProfile.nickName = nickName
  },
  // 获取用户头像
  getUserAvatar(ev) {
    console.log(ev.detail.avatarUrl);
    this.setData({ avatar: ev.detail.avatarUrl })
    this.updateAvatar(ev.detail.avatarUrl)
  },
  updateAvatar(avatar) {
    // 调用 API 上传文件
    wx.uploadFile({
      // 待上传的文件路径
      filePath: avatar,
      name: 'file',
      // 接口地址
      url: wx.http.baseURL + '/upload',
      header: {
        Authorization: 'Bearer ' + getApp().token
      },
      formData: { type: 'avatar' },
      success: (res) => {
        // 处理返回的数据
        const data = JSON.parse(res.data)
        if (data.code !== 10000) return wx.utils.tosat('上传头像失败!')
        // 借助于页面栈实例来更新 pages/my/index.wxml 中的头像
        pageStack[0].setData({ avatar: data.data.url })
        const app = getApp()
        app.userProfile.avatar = data.data.url
      }
    })
  }
})